This invention relates to coding a vector.
Normalized vectors (xe2x80x9cnormalsxe2x80x9d) are included, for example, in data for a three-dimensional (xe2x80x9c3Dxe2x80x9d) model. Vertex and face normals are often stored along with polygons that make up the 3D model, and are used in determining the shading of the 3D model. The vertex normals may be determined using smoothing information or the like and can be modified by a user to enhance the smoothness or sharpness of edges in the 3D model.
Normalized vectors are also used in other areas of computer graphics where a direction vector is needed, such as animation, imaging and video processing. For example, animation data for 3D models contains normalized vectors that describe bone angles of an animated character in each frame of motion. Video compression uses motion estimation techniques which also rely on normalized vectors.
When storing the 3D model, or transmitting it over a network such as the Internet, it is advantageous to reduce the amount of data that must be stored/transmitted. Coding techniques may be employed to code vectors in the 3D model and thus reduce the amount of data for storage/transmission.
In general, in one aspect of the invention, a method for coding an input vector (such as a face or vertex vector of a 3D model) includes locating a target vector on a subdivision surface that is within a range of the input vector. A value associated with the target vector is assigned to the input vector.
Among the advantages of the invention are one or more of the following. Coding vectors using a subdivision surface reduces the amount of data that must be stored/transmitted for a 3D model. Other coding techniques may be employed to reduce the amount of data even further.
Other advantages and features will become apparent from the following description and the claims.